# -*- coding: utf-8 -*-
"""
应用系统配置路由
提供应用系统管理相关的Web接口
"""

from flask import Blueprint, render_template, jsonify, request, redirect, url_for
from common.logger import get_logger

logger = get_logger(__name__)

bp = Blueprint('app_system', __name__)


@bp.route('/')
def index():
    """应用系统配置主页"""
    return render_template('app_system_config.html')


@bp.route('/list')
def list_apps():
    """获取应用系统列表"""
    try:
        # 这里应该从数据库获取应用系统列表
        apps = [
            {
                'id': 1,
                'name': 'web应用',
                'description': 'Web应用系统',
                'status': 'active',
                'created_at': '2024-01-01 10:00:00'
            },
            {
                'id': 2,
                'name': '数据库服务',
                'description': 'MySQL数据库服务',
                'status': 'active',
                'created_at': '2024-01-01 10:00:00'
            }
        ]
        return jsonify({'success': True, 'data': apps})
    except Exception as e:
        logger.error(f"获取应用系统列表失败: {e}")
        return jsonify({'success': False, 'error': str(e)}), 500


@bp.route('/create', methods=['GET', 'POST'])
def create_app():
    """创建应用系统"""
    if request.method == 'GET':
        return render_template('app_system_create.html')
    
    try:
        data = request.get_json()
        app_name = data.get('name')
        description = data.get('description')
        
        # 这里应该保存到数据库
        logger.info(f"创建应用系统: {app_name}")
        
        return jsonify({'success': True, 'message': '应用系统创建成功'})
    except Exception as e:
        logger.error(f"创建应用系统失败: {e}")
        return jsonify({'success': False, 'error': str(e)}), 500


@bp.route('/<int:app_id>')
def get_app(app_id):
    """获取应用系统详情"""
    try:
        # 这里应该从数据库获取应用系统详情
        app = {
            'id': app_id,
            'name': '示例应用',
            'description': '这是一个示例应用',
            'status': 'active',
            'created_at': '2024-01-01 10:00:00'
        }
        return jsonify({'success': True, 'data': app})
    except Exception as e:
        logger.error(f"获取应用系统详情失败: {e}")
        return jsonify({'success': False, 'error': str(e)}), 500


@bp.route('/<int:app_id>/edit', methods=['GET', 'POST'])
def edit_app(app_id):
    """编辑应用系统"""
    if request.method == 'GET':
        return render_template('app_system_edit.html', app_id=app_id)
    
    try:
        data = request.get_json()
        app_name = data.get('name')
        description = data.get('description')
        
        # 这里应该更新数据库
        logger.info(f"更新应用系统 {app_id}: {app_name}")
        
        return jsonify({'success': True, 'message': '应用系统更新成功'})
    except Exception as e:
        logger.error(f"更新应用系统失败: {e}")
        return jsonify({'success': False, 'error': str(e)}), 500


@bp.route('/<int:app_id>/delete', methods=['DELETE'])
def delete_app(app_id):
    """删除应用系统"""
    try:
        # 这里应该从数据库删除
        logger.info(f"删除应用系统: {app_id}")
        
        return jsonify({'success': True, 'message': '应用系统删除成功'})
    except Exception as e:
        logger.error(f"删除应用系统失败: {e}")
        return jsonify({'success': False, 'error': str(e)}), 500


@bp.route('/<int:app_id>/logs')
def get_app_logs(app_id):
    """获取应用系统日志"""
    try:
        # 这里应该从数据库获取应用系统日志
        logs = [
            {
                'id': 1,
                'level': 'ERROR',
                'message': '数据库连接失败',
                'timestamp': '2024-01-01 10:00:00'
            },
            {
                'id': 2,
                'level': 'INFO',
                'message': '应用启动成功',
                'timestamp': '2024-01-01 09:00:00'
            }
        ]
        return jsonify({'success': True, 'data': logs})
    except Exception as e:
        logger.error(f"获取应用系统日志失败: {e}")
        return jsonify({'success': False, 'error': str(e)}), 500 